Occurence d'un caractère dans une chaîne de caractères

Modifié par Juliedrappier

L'objectif de cette activité est d'écrire un programme en langage Python permettant de compter le nombre d’occurrences d'une chaîne de caractères dans un texte donné.

Partie A - Nombre de lettres e dans une citation

Suivre les indications et rédiger un programme en langage Python permettant de compter le nombre de lettres e dans le texte suivant : « Donnez-moi un point fixe et un levier et je soulèverai la Terre.  »

  • Initialiser une chaîne de caractères appelée texte contenant la citation donnée.
  • Initialiser les variables a et nb_e à zéro.
  • À l'aide d'une boucle, dire si chaque élément de la chaîne de caractères est égal au caractère e et, si tel est le cas, augmenter d'une unité la valeur de nb_e.
  • Afficher le nombre d’occurrences de la lettre e.

Voici une proposition de programme en langage Python qui réalise la tâche demandée.
texte=" Donnez-moi un point fixe et un levier et je soulèverai la Terre "
a=0           
nb_e=0           
while a<len(texte):        
    if texte[a]=='e':  
        nb_e=nb_e+1
       a=a+1
print(e)

1. Modifier le programme afin qu'il renvoie la fréquence d'apparition de la lettre e dans ce texte.

2. Tester la fréquence d'apparition de plusieurs lettres dans des textes en français puis en anglais. Comparer les résultats.

Le diagramme suivant montre la fréquence d'apparition des lettres dans plusieurs langues.


Partie B - Nombre de chiffres 3 dans une valeur approchée de `\pi`

La chaîne de caractères suivante représente une valeur approchée de `\pi` comportant `1 500` décimales.

En adaptant le programme de la partie A, rédiger un programme en langage Python comptant le nombre de chiffres 3 présents dans cette chaîne de caractères.

texte="3,14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983 8505494588 5869269956 9092721079 7509302955 "

Il peut être intéressant de chercher des chaînes de plusieurs caractères à l'intérieur d'une chaîne donnée. Pour ce faire, il est possible d'utiliser la commande find, comme illustré dans le programme suivant.
1. #ici recopier texte
2. def trouve(txt):
3.     pos = texte.find(txt)
4.     if pos > -1:
5.         print(txt)
6.         print('le nombre est trouvé')
7.     else:
8.         print('le nombre n\'est pas trouvé')
9.       
10.  print('rentrer le nombre à chercher')
11. a=input()
12. trouve(a)

En utilisant le programme précédent et le texte contenant `1 500`  décimales de  `\pi` , tester la présence de chaînes à  `2` chiffres puis à  `3` chiffres à l'intérieur de texte. 

Remarque

Plus on considère de décimales de `\pi` , plus on peut trouver de chaînes de caractères à  `n` chiffres. On conjecture que  `\pi` est un nombre univers, c'est-à-dire que la suite de ses décimales contient  une infinité de séquences de décimales toutes différentes. Cette propriété de `\pi` n'est, pour le moment, pas démontrée.

Source : https://lesmanuelslibres.region-academique-idf.fr
Télécharger le manuel : https://forge.apps.education.fr/drane-ile-de-france/les-manuels-libres/mathematiques-premiere-specialite ou directement le fichier ZIP
Sous réserve des droits de propriété intellectuelle de tiers, les contenus de ce site sont proposés dans le cadre du droit Français sous licence CC BY-NC-SA 4.0